home *** CD-ROM | disk | FTP | other *** search
- ; 0001 0 MODULE KERTT (IDENT = '2.0.003'
- ; 0002 0 ) =
- ; 0003 1 BEGIN
- ; 0004 1
- ; 0005 1 SWITCHES LANGUAGE (COMMON);
- ; 0006 1
- ; 0007 1 !<BLF/WIDTH:100>
- ; 0008 1
- ; 0009 1 !++
- ; 0010 1 ! FACILITY:
- ; 0011 1 !
- ; 0012 1 ! KERMIT text processing
- ; 0013 1 !
- ; 0014 1 ! ABSTRACT:
- ; 0015 1 !
- ; 0016 1 ! This module contains all of the text processing required for
- ; 0017 1 ! KERMSG.
- ; 0018 1 !
- ; 0019 1 ! ENVIRONMENT:
- ; 0020 1 !
- ; 0021 1 ! TOPS-10, P/OS, VAX/VMS
- ; 0022 1 !
- ; 0023 1 ! AUTHOR: Robert C. McQueen, CREATION DATE: 29-August-1983
- ; 0024 1 !--
- ; 0025 1
- ; 0026 1 %SBTTL 'Table of Contents'
- ; 0027 1 !
- ; 0028 1 ! TABLE OF CONTENTS:
- ; 0029 1 !
- ; 0030 1 %SBTTL 'Revision History'
- ; 0031 1
- ; 0032 1 !++
- ; 0033 1 !
- ; 0034 1 ! Create this module for PRO/Kermit 1.0, Kermit-10 2(100) and Kermit-32 1.2
- ; 0035 1 !
- ; 0036 1 ! 1.2.000 By: Robert C. McQueen On: 29-August-1983
- ; 0037 1 ! Create this module.
- ; 0038 1 !
- ; 0039 1 ! 1.2.001 By: Robert C. McQueen On: 9-Sept-1983
- ; 0040 1 ! Make the string passed to TERM%DUMP a counted ASCIZ string,
- ; 0041 1 ! not a counted ASCII string.
- ; 0042 1 !
- ; 0043 1 ! 1.2.002 By: Robert C. McQueen On: 16-September-1983
- ; 0044 1 ! Make TT%OUTPUT a global routine, so we can force information
- ; 0045 1 ! output a various points in time.
- ; 0046 1 !
- ; 0047 1 ! 2.0.003 Release for TOPS-10 KERMIT-10 version 2.
- ; 0048 1 ! Release for VAX/VMS KERMIT-32 version 2.
- ; 0049 1 !--
- ; 0050 1
- ; 0051 1 %SBTTL 'Library files'
- ; 0052 1 !
- ; 0053 1 ! INCLUDE FILES:
- ; 0054 1 !
- ; 0055 1 !
- ; 0056 1 ! KERMIT common definitions
- ; 0057 1 !
- ; 0058 1
- ; 0059 1 REQUIRE 'KERCOM';
- ; 0266 1
- ; 0267 1 %SBTTL 'Symbol definitions'
- ; 0268 1 !
- ; 0269 1 ! EQUATED SYMBOLS:
- ; 0270 1 !
- ; 0271 1
- ; 0272 1 LITERAL
- ; 0273 1 TEXT%BFR%LENGTH = 256; ! Length of the text buffer
- ; 0274 1
- ; 0275 1 %SBTTL 'Storage'
- ; 0276 1 !
- ; 0277 1 ! OWN STORAGE:
- ; 0278 1 !
- ; 0279 1 !
- ; 0280 1 ! TT%xxxxx routine storage
- ; 0281 1 !
- ; 0282 1
- ; 0283 1 OWN
- ; 0284 1 DUMP%ROUTINE, ! Address of routine to dump text
- ; 0285 1 TEXT%COUNT, ! Count of the characters
- ; 0286 1 TEXT%POINTER, ! Pointer to store characters
- ; 0287 1 TEXT%BUFFER : VECTOR [CH$ALLOCATION (TEXT%BFR%LENGTH)]; ! Buffer of characters
- ; 0288 1
- ; 0289 1 %SBTTL 'External storage'
- ; 0290 1
- ; 0291 1 !++
- ; 0292 1 ! The following is the various external storage locations that are
- ; 0293 1 ! referenced from this module.
- ; 0294 1 !--
- ; 0295 1
- ; 0296 1 !
- ; 0297 1 ! KERMSG storage
- ; 0298 1 !
- ; 0299 1
- ; 0300 1 EXTERNAL
- ; 0301 1 CONNECT%FLAG; ! Flag if communications line is TT:
- ; 0302 1
- ; 0303 1 !++
- ; 0304 1 ! The following is the only external routine used by this module. This
- ; 0305 1 ! routine will cause the terminal buffer that we have been building to be
- ; 0306 1 ! output on the terminal
- ; 0307 1 !--
- ; 0308 1
- ; 0309 1 EXTERNAL ROUTINE
- ; 0310 1 TERM%DUMP : NOVALUE; ! Output the terminal buffer
- ; 0311 1
- ; 0312 1 %SBTTL 'Terminal routines -- TT%INIT - Initialize this module'
- ; 0313 1
- ; 0314 1 GLOBAL ROUTINE TT%INIT : NOVALUE =
- ; 0315 1
- ; 0316 1 !++
- ; 0317 1 ! FUNCTIONAL DESCRIPTION:
- ; 0318 1 !
- ; 0319 1 ! This routine will initialize the terminal processing module. It will
- ; 0320 1 ! initialize the various data locations in this module.
- ; 0321 1 !
- ; 0322 1 ! CALLING SEQUENCE:
- ; 0323 1 !
- ; 0324 1 ! TT%INIT();
- ; 0325 1 !
- ; 0326 1 ! INPUT PARAMETERS:
- ; 0327 1 !
- ; 0328 1 ! None.
- ; 0329 1 !
- ; 0330 1 ! IMPLICIT INPUTS:
- ; 0331 1 !
- ; 0332 1 ! None.
- ; 0333 1 !
- ; 0334 1 ! OUTPUT PARAMETERS:
- ; 0335 1 !
- ; 0336 1 ! None.
- ; 0337 1 !
- ; 0338 1 ! IMPLICIT OUTPUTS:
- ; 0339 1 !
- ; 0340 1 ! None.
- ; 0341 1 !
- ; 0342 1 ! COMPLETION CODES:
- ; 0343 1 !
- ; 0344 1 ! None.
- ; 0345 1 !
- ; 0346 1 ! SIDE EFFECTS:
- ; 0347 1 !
- ; 0348 1 ! None.
- ; 0349 1 !
- ; 0350 1 !--
- ; 0351 1
- ; 0352 2 BEGIN
- ; 0353 2 !
- ; 0354 2 ! Now initialize the various pointers
- ; 0355 2 !
- ; 0356 2 TEXT%COUNT = 0;
- ; 0357 2 TEXT%POINTER = CH$PTR (TEXT%BUFFER);
- ; 0358 2 DUMP%ROUTINE = TERM%DUMP; ! Initial output routine is to terminal
- ; 0359 1 END; ! End of TT%INIT
-
-
- TITLE KERTT
- TWOSEG
-
-
- .REQUEST REL:B361LB.REL
-
-
- RELOC 0
- ; DUMP%ROUTINE
- U.1: BLOCK 1
- ; TEXT%COUNT
- U.2: BLOCK 1
- ; TEXT%POINTER
- U.3: BLOCK 1
- ; TEXT%BUFFER
- U.4: BLOCK 64
-
-
- EXTERN CONNECT%FLAG, TERM%DUMP
-
-
- FNM%NORMAL==: 1
- FNM%FULL==: 2
- FNM%UNTRAN==: 4
- PR%MIN==: 0
- PR%NONE==: 0
- PR%MARK==: 1
- PR%EVEN==: 2
- PR%ODD==: 3
- PR%SPACE==: 4
- PR%MAX==: 4
- GC%MIN==: 1
- GC%EXIT==: 1
- GC%DIRECTORY==: 2
- GC%DISK%USAGE==: 3
- GC%DELETE==: 4
- GC%TYPE==: 5
- GC%HELP==: 6
- GC%LOGOUT==: 7
- GC%LGN==: 10
- GC%CONNECT==: 11
- GC%RENAME==: 12
- GC%COPY==: 13
- GC%WHO==: 14
- GC%SEND%MSG==: 15
- GC%STATUS==: 16
- GC%COMMAND==: 17
- GC%KERMIT==: 20
- GC%JOURNAL==: 21
- GC%VARIABLE==: 22
- GC%PROGRAM==: 23
- GC%MAX==: 23
- DP%FULL==: 0
- DP%HALF==: 1
- CHK%1CHAR==: 61
- CHK%2CHAR==: 62
- CHK%CRC==: 63
- MAX%MSG==: 1752
-
-
- AC0= 0
- AC1= 1
- AC2= 2
- AC3= 3
- AC4= 4
- AC5= 5
- AC6= 6
- AC7= 7
- AC10= 10
- AC11= 11
- AC12= 12
- AC13= 13
- AC14= 14
- FP= 15
- AC16= 16
- SP= 17
-
-
- RELOC 400000
- TT%INIT::
- SETZM U.2 ; 0356
- MOVE AC1,C.1 ; 0357
- MOVEM AC1,U.3
- MOVEI AC1,TERM%DUMP ; 0358
- MOVEM AC1,U.1
- POPJ SP, ; 0314
- C.1: POINT 7,U.4-1,34
-
- ; Routine Size: 7 words
-
-
- ; 0360 1
- ; 0361 1 %SBTTL 'TT%SET%OUTPUT - Set output routine to use'
- ; 0362 1 GLOBAL ROUTINE TT%SET%OUTPUT (OUT%RTN) =
- ; 0363 1
- ; 0364 1 !++
- ; 0365 1 ! FUNCTIONAL DESCRIPTION:
- ; 0366 1 !
- ; 0367 1 ! This routine will set the output routine to use for the TT%xxx routines.
- ; 0368 1 !The argument is a routine address which will output a counted ASCIZ string.
- ; 0369 1 !It will return the address of the previous output routine.
- ; 0370 1 !
- ; 0371 1 ! CALLING SEQUENCE:
- ; 0372 1 !
- ; 0373 1 ! OLD%RTN = TT%SET%OUTPUT (OUT%RTN);
- ; 0374 1 !
- ; 0375 1 ! INPUT PARAMETERS:
- ; 0376 1 !
- ; 0377 1 ! OUT%RTN - Address of routine to output a counted ASCIZ string
- ; 0378 1 ! called as OUT%RTN (Address of string, length of string)
- ; 0379 1 !
- ; 0380 1 ! IMPLICIT INPUTS:
- ; 0381 1 !
- ; 0382 1 ! DUMP%ROUTINE - Previous output routine
- ; 0383 1 !
- ; 0384 1 ! OUPTUT PARAMETERS:
- ; 0385 1 !
- ; 0386 1 ! The value of the routine is the previous output routine address.
- ; 0387 1 !
- ; 0388 1 ! IMPLICIT OUTPUTS:
- ; 0389 1 !
- ; 0390 1 ! DUMP%ROUTINE - New output routine
- ; 0391 1 !
- ; 0392 1 ! COMPLETION CODES:
- ; 0393 1 !
- ; 0394 1 ! None.
- ; 0395 1 !
- ; 0396 1 ! SIDE EFFECTS:
- ; 0397 1 !
- ; 0398 1 ! None.
- ; 0399 1 !
- ; 0400 1 !--
- ; 0401 1
- ; 0402 2 BEGIN
- ; 0403 2 LOCAL
- ; 0404 2 OLD%RTN; ! Old routine address
- ; 0405 2
- ; 0406 2 OLD%RTN = .DUMP%ROUTINE; ! Remember the old address
- ; 0407 2 DUMP%ROUTINE = .OUT%RTN; ! Save the new
- ; 0408 2 RETURN .OLD%RTN; ! And return the old value
- ; 0409 1 END; ! End of TT%SET%OUTPUT
-
-
- TT%SET%OUTPUT::
- MOVE AC1,U.1 ; 0406
- MOVE AC2,-1(SP) ; 0407
- MOVEM AC2,U.1
- POPJ SP, ; 0362
-
- ; Routine Size: 4 words
-
-
- ; 0410 1
- ; 0411 1 %SBTTL 'Terminal routines -- TT%OUTPUT - Output the buffer'
- ; 0412 1 GLOBAL ROUTINE TT%OUTPUT : NOVALUE =
- ; 0413 1
- ; 0414 1 !++
- ; 0415 1 ! FUNCTIONAL DESCRIPTION:
- ; 0416 1 !
- ; 0417 1 ! This routine will dump the text buffer on the output device.
- ; 0418 1 !
- ; 0419 1 ! CALLING SEQUENCE:
- ; 0420 1 !
- ; 0421 1 ! TT%OUTPUT();
- ; 0422 1 !
- ; 0423 1 ! INPUT PARAMETERS:
- ; 0424 1 !
- ; 0425 1 ! None.
- ; 0426 1 !
- ; 0427 1 ! IMPLICIT INPUTS:
- ; 0428 1 !
- ; 0429 1 ! None.
- ; 0430 1 !
- ; 0431 1 ! OUTPUT PARAMETERS:
- ; 0432 1 !
- ; 0433 1 ! None.
- ; 0434 1 !
- ; 0435 1 ! IMPLICIT OUTPUTS:
- ; 0436 1 !
- ; 0437 1 ! None.
- ; 0438 1 !
- ; 0439 1 ! COMPLETION CODES:
- ; 0440 1 !
- ; 0441 1 ! None.
- ; 0442 1 !
- ; 0443 1 ! SIDE EFFECTS:
- ; 0444 1 !
- ; 0445 1 ! None.
- ; 0446 1 !
- ; 0447 1 !--
- ; 0448 1
- ; 0449 2 BEGIN
- ; 0450 2
- ; 0451 2 LOCAL
- ; 0452 2 STATUS; ! Status returned by the library routine
- ; 0453 2
- ; 0454 2 !
- ; 0455 2 ! Output the text
- ; 0456 2 !
- ; 0457 2 CH$WCHAR%A (CHR%NUL, TEXT%POINTER);
- ; 0458 2 (.DUMP%ROUTINE) (TEXT%BUFFER, .TEXT%COUNT); ! Output the buffer to the correct place
- ; 0459 2 !
- ; 0460 2 ! Now reset the descriptor and the pointer to a virgin state
- ; 0461 2 !
- ; 0462 2 TEXT%COUNT = 0;
- ; 0463 2 TEXT%POINTER = CH$PTR (TEXT%BUFFER);
- ; 0464 2 !
- ; 0465 1 END; ! End of TT%OUTPUT
-
-
- TT%OUTPUT::
- SETZ AC1, ; 0457
- IDPB AC1,U.3
- MOVE AC1,U.1 ; 0458
- PUSH SP,C.2
- PUSH SP,U.2
- PUSHJ SP,0(AC1)
- SETZM U.2 ; 0462
- MOVE AC1,C.1 ; 0463
- MOVEM AC1,U.3
- ADJSP SP,-2 ; 0449
- POPJ SP, ; 0412
- C.2: XWD 0,U.4
-
- ; Routine Size: 12 words
-
-
- ; 0466 1 %SBTTL 'Terminal routines -- TT%CHAR - Output a single character'
- ; 0467 1
- ; 0468 1 GLOBAL ROUTINE TT%CHAR (CHARACTER) : NOVALUE =
- ; 0469 1
- ; 0470 1 !++
- ; 0471 1 ! FUNCTIONAL DESCRIPTION:
- ; 0472 1 !
- ; 0473 1 ! This routine will store a character into the text buffer. It will
- ; 0474 1 ! cause the text to be output if the character is a line terminator.
- ; 0475 1 !
- ; 0476 1 ! CALLING SEQUENCE:
- ; 0477 1 !
- ; 0478 1 ! TT%CHAR(Character);
- ; 0479 1 !
- ; 0480 1 ! INPUT PARAMETERS:
- ; 0481 1 !
- ; 0482 1 ! Character - Character to store into the text buffer.
- ; 0483 1 !
- ; 0484 1 ! IMPLICIT INPUTS:
- ; 0485 1 !
- ; 0486 1 ! None.
- ; 0487 1 !
- ; 0488 1 ! OUTPUT PARAMETERS:
- ; 0489 1 !
- ; 0490 1 ! None.
- ; 0491 1 !
- ; 0492 1 ! IMPLICIT OUTPUTS:
- ; 0493 1 !
- ; 0494 1 ! None.
- ; 0495 1 !
- ; 0496 1 ! COMPLETION CODES:
- ; 0497 1 !
- ; 0498 1 ! None.
- ; 0499 1 !
- ; 0500 1 ! SIDE EFFECTS:
- ; 0501 1 !
- ; 0502 1 ! None.
- ; 0503 1 !
- ; 0504 1 !--
- ; 0505 1
- ; 0506 2 BEGIN
- ; 0507 2 !
- ; 0508 2 ! Increment the count of the characters
- ; 0509 2 !
- ; 0510 2 TEXT%COUNT = .TEXT%COUNT + 1;
- ; 0511 2 !
- ; 0512 2 ! And store the character
- ; 0513 2 !
- ; 0514 2 CH$WCHAR%A (.CHARACTER, TEXT%POINTER);
- ; 0515 2 !
- ; 0516 2 ! If this is a line feed then just output the text string
- ; 0517 2 !
- ; 0518 2
- ; 0519 2 IF .CHARACTER EQL CHR%LFD THEN TT%OUTPUT ();
- ; 0520 2 !
- ; 0521 2 ! Check to make sure we are not exceeding the limit of the buffer
- ; 0522 2 !
- ; 0523 2 IF .TEXT%COUNT EQL TEXT%BFR%LENGTH-1 THEN TT%OUTPUT ();
- ; 0524 2
- ; 0525 2
- ; 0526 2 !
- ; 0527 1 END; ! End of TT%CHAR
-
-
- TT%CHAR::
- AOS U.2 ; 0510
- MOVE AC1,-1(SP) ; 0514
- IDPB AC1,U.3
- MOVEI AC1,12 ; 0519
- CAMN AC1,-1(SP)
- PUSHJ SP,TT%OUTPUT
- MOVEI AC1,377 ; 0523
- CAMN AC1,U.2
- PUSHJ SP,TT%OUTPUT
- POPJ SP, ; 0468
-
- ; Routine Size: 10 words
-
-
- ; 0528 1
- ; 0529 1 %SBTTL 'Terminal routines -- TT%TEXT - Output a text string'
- ; 0530 1
- ; 0531 1 GLOBAL ROUTINE TT%TEXT (ADDRESS) : NOVALUE =
- ; 0532 1
- ; 0533 1 !++
- ; 0534 1 ! FUNCTIONAL DESCRIPTION:
- ; 0535 1 !
- ; 0536 1 ! This routine will output text on the user's terminal. It will
- ; 0537 1 ! assume that it must check to determine if it can output the text
- ; 0538 1 ! or not.
- ; 0539 1 !
- ; 0540 1 ! CALLING SEQUENCE:
- ; 0541 1 !
- ; 0542 1 ! TT%TEXT(TEXT%ADDRESS);
- ; 0543 1 !
- ; 0544 1 ! INPUT PARAMETERS:
- ; 0545 1 !
- ; 0546 1 ! None.
- ; 0547 1 !
- ; 0548 1 ! IMPLICIT INPUTS:
- ; 0549 1 !
- ; 0550 1 ! None.
- ; 0551 1 !
- ; 0552 1 ! OUTPUT PARAMETERS:
- ; 0553 1 !
- ; 0554 1 ! None.
- ; 0555 1 !
- ; 0556 1 ! IMPLICIT OUTPUTS:
- ; 0557 1 !
- ; 0558 1 ! None.
- ; 0559 1 !
- ; 0560 1 ! COMPLETION CODES:
- ; 0561 1 !
- ; 0562 1 ! None.
- ; 0563 1 !
- ; 0564 1 ! SIDE EFFECTS:
- ; 0565 1 !
- ; 0566 1 ! None.
- ; 0567 1 !
- ; 0568 1 !--
- ; 0569 1
- ; 0570 2 BEGIN
- ; 0571 2
- ; 0572 2 LOCAL
- ; 0573 2 CHARACTER, ! Character being processed
- ; 0574 2 ARG%POINTER; ! Pointer to the argument's text
- ; 0575 2
- ; 0576 2 !
- ; 0577 2 ! Construct a pointer to the argument.
- ; 0578 2 !
- ; 0579 2 ARG%POINTER = CH$PTR (.ADDRESS);
- ; 0580 2 !
- ; 0581 2 ! Get the first character that was passed.
- ; 0582 2 !
- ; 0583 2 CHARACTER = CH$RCHAR%A (ARG%POINTER);
- ; 0584 2 !
- ; 0585 2 ! Loop reading characters and calling the output routine to process
- ; 0586 2 ! them
- ; 0587 2 !
- ; 0588 2
- ; 0589 2 WHILE .CHARACTER NEQ CHR%NUL DO
- ; 0590 3 BEGIN
- ; 0591 3 TT%CHAR (.CHARACTER);
- ; 0592 3 CHARACTER = CH$RCHAR%A (ARG%POINTER);
- ; 0593 2 END;
- ; 0594 2
- ; 0595 1 END; ! End of TT%TEXT
-
-
- TT%TEXT::
- PUSH SP,AC14 ; 0531
- PUSH SP,AC16
- MOVE AC1,-3(SP) ; 0579
- MOVEI AC16,-1(AC1)
- HRLI AC16,10700
- ILDB AC14,AC16 ; 0583
- L.1: JUMPE AC14,L.2 ; 0589
- PUSH SP,AC14 ; 0591
- PUSHJ SP,TT%CHAR
- ILDB AC14,AC16 ; 0592
- ADJSP SP,-1 ; 0590
- JRST L.1 ; 0589
- L.2: POP SP,AC16 ; 0531
- POP SP,AC14
- POPJ SP,
-
- ; Routine Size: 15 words
-
-
- ; 0596 1
- ; 0597 1 %SBTTL 'Terminal routines -- TT%NUMBER - Output a three digit number'
- ; 0598 1
- ; 0599 1 GLOBAL ROUTINE TT%NUMBER (NUMBER) : NOVALUE =
- ; 0600 1
- ; 0601 1 !++
- ; 0602 1 ! FUNCTIONAL DESCRIPTION:
- ; 0603 1 !
- ; 0604 1 ! This routine will store a three digit number into the text buffer.
- ; 0605 1 ! It will just return if the number is greater than 999.
- ; 0606 1 !
- ; 0607 1 ! CALLING SEQUENCE:
- ; 0608 1 !
- ; 0609 1 ! TT%NUMBER(Value);
- ; 0610 1 !
- ; 0611 1 ! INPUT PARAMETERS:
- ; 0612 1 !
- ; 0613 1 ! Value - Value to output.
- ; 0614 1 !
- ; 0615 1 ! IMPLICIT INPUTS:
- ; 0616 1 !
- ; 0617 1 ! None.
- ; 0618 1 !
- ; 0619 1 ! OUTPUT PARAMETERS:
- ; 0620 1 !
- ; 0621 1 ! None.
- ; 0622 1 !
- ; 0623 1 ! IMPLICIT OUTPUTS:
- ; 0624 1 !
- ; 0625 1 ! None.
- ; 0626 1 !
- ; 0627 1 ! COMPLETION CODES:
- ; 0628 1 !
- ; 0629 1 ! None.
- ; 0630 1 !
- ; 0631 1 ! SIDE EFFECTS:
- ; 0632 1 !
- ; 0633 1 ! None.
- ; 0634 1 !
- ; 0635 1 !--
- ; 0636 1
- ; 0637 2 BEGIN
- ; 0638 2 ROUTINE TT%NUM%WORKER (VALUE) : NOVALUE =
- ; 0639 3 BEGIN
- ; 0640 3
- ; 0641 3 IF .VALUE LEQ 9
- ; 0642 3 THEN
- ; 0643 3 TT%CHAR (.VALUE + %C'0')
- ; 0644 3 ELSE
- ; 0645 4 BEGIN
- ; 0646 4 TT%NUM%WORKER (.VALUE/10);
- ; 0647 4 TT%CHAR ((.VALUE MOD 10) + %C'0');
- ; 0648 3 END;
- ; 0649 3
- ; 0650 2 END;
-
-
- ; TT%NUM%WORKER
- U.11: PUSH SP,AC16 ; 0638
- MOVE AC16,-2(SP) ; 0641
- CAILE AC16,11
- JRST L.3
- MOVE AC1,AC16 ; 0643
- ADDI AC1,60
- PUSH SP,AC1
- PUSHJ SP,TT%CHAR
- JRST L.4 ; 0641
- L.3: MOVE AC1,AC16 ; 0646
- IDIVI AC1,12
- PUSH SP,AC1
- PUSHJ SP,U.11
- MOVE AC1,AC16 ; 0647
- IDIVI AC1,12
- ADDI AC2,60
- PUSH SP,AC2
- PUSHJ SP,TT%CHAR
- ADJSP SP,-1 ; 0645
- L.4: ADJSP SP,-1 ; 0639
- POP SP,AC16 ; 0638
- POPJ SP,
-
- ; Routine Size: 22 words
-
-
- ; 0651 2
- ; 0652 2 IF .NUMBER LSS 0
- ; 0653 2 THEN
- ; 0654 3 BEGIN
- ; 0655 3 TT%CHAR (%C'-');
- ; 0656 3 NUMBER = -.NUMBER;
- ; 0657 2 END;
- ; 0658 2
- ; 0659 2 TT%NUM%WORKER (.NUMBER);
- ; 0660 1 END; ! End of TT%NUMBER
-
-
- TT%NUMBER::
- SKIPL -1(SP) ; 0652
- JRST L.5
- PUSH SP,C.3 ; 0655
- PUSHJ SP,TT%CHAR
- MOVNS -2(SP) ; 0656
- ADJSP SP,-1 ; 0654
- L.5: PUSH SP,-1(SP) ; 0659
- PUSHJ SP,U.11
- ADJSP SP,-1 ; 0637
- POPJ SP, ; 0599
- C.3: EXP 55
-
- ; Routine Size: 11 words
-
-
- ; 0661 1
- ; 0662 1 %SBTTL 'Terminal routines -- TT%CRLF - Output a CRLF'
- ; 0663 1
- ; 0664 1 GLOBAL ROUTINE TT%CRLF : NOVALUE =
- ; 0665 1
- ; 0666 1 !++
- ; 0667 1 ! FUNCTIONAL DESCRIPTION:
- ; 0668 1 !
- ; 0669 1 ! This routine will cause the contents of the terminal buffer to be
- ; 0670 1 ! output to SYS$OUTPUT:.
- ; 0671 1 !
- ; 0672 1 ! CALLING SEQUENCE:
- ; 0673 1 !
- ; 0674 1 ! TT%CRLF();
- ; 0675 1 !
- ; 0676 1 ! INPUT PARAMETERS:
- ; 0677 1 !
- ; 0678 1 ! None.
- ; 0679 1 !
- ; 0680 1 ! IMPLICIT INPUTS:
- ; 0681 1 !
- ; 0682 1 ! None.
- ; 0683 1 !
- ; 0684 1 ! OUTPUT PARAMETERS:
- ; 0685 1 !
- ; 0686 1 ! None.
- ; 0687 1 !
- ; 0688 1 ! IMPLICIT OUTPUTS:
- ; 0689 1 !
- ; 0690 1 ! None.
- ; 0691 1 !
- ; 0692 1 ! COMPLETION CODES:
- ; 0693 1 !
- ; 0694 1 ! None.
- ; 0695 1 !
- ; 0696 1 ! SIDE EFFECTS:
- ; 0697 1 !
- ; 0698 1 ! None.
- ; 0699 1 !
- ; 0700 1 !--
- ; 0701 1
- ; 0702 2 BEGIN
- ; 0703 2 TT%CHAR (CHR%CRT);
- ; 0704 2 TT%CHAR (CHR%LFD);
- ; 0705 1 END; ! End of TT%CRLF
-
-
- TT%CRLF::
- PUSH SP,C.4 ; 0703
- PUSHJ SP,TT%CHAR
- PUSH SP,C.5 ; 0704
- PUSHJ SP,TT%CHAR
- ADJSP SP,-2 ; 0702
- POPJ SP, ; 0664
- C.4: EXP 15
- C.5: EXP 12
-
- ; Routine Size: 8 words
-
- ; 0706 1
- ; 0707 1 %SBTTL 'End of KERTRM'
- ; 0708 1 END ! End of module
- ; 0709 1
- ; 0710 0 ELUDOM
-
- ; Low segment length: 55 words
- ; High segment length: 89 words
-
- ; Compilation Complete
-
- END
-